using System;
using System.Collections.Generic;
using ns26;
using ns27;

namespace Triton.Game.Mapping
{
	[Attribute38("SpellMoveToTargetAuto")]
	public class SpellMoveToTargetAuto : Spell
	{
		public float m_MovementDurationSec => method_2<float>("m_MovementDurationSec");

		public iTween.EaseType m_EaseType => method_2<iTween.EaseType>("m_EaseType");

		public bool m_DisableContainerAfterAction => method_2<bool>("m_DisableContainerAfterAction");

		public bool m_OnlyMoveContainer => method_2<bool>("m_OnlyMoveContainer");

		public bool m_OrientToPath => method_2<bool>("m_OrientToPath");

		public float CenterOffsetPercent => method_2<float>("CenterOffsetPercent");

		public float CenterPointHeightMin => method_2<float>("CenterPointHeightMin");

		public float CenterPointHeightMax => method_2<float>("CenterPointHeightMax");

		public float RightMin => method_2<float>("RightMin");

		public float RightMax => method_2<float>("RightMax");

		public float LeftMin => method_2<float>("LeftMin");

		public float LeftMax => method_2<float>("LeftMax");

		public bool DebugForceMax => method_2<bool>("DebugForceMax");

		public float DistanceScaleFactor => method_2<float>("DistanceScaleFactor");

		public bool m_waitingToAct => method_2<bool>("m_waitingToAct");

		public List<Vector3> m_pathNodes => method_3<Class250<Vector3>>("m_pathNodes")?.method_25();

		public bool m_sourceComputed => method_2<bool>("m_sourceComputed");

		public bool m_targetComputed => method_2<bool>("m_targetComputed");

		public SpellMoveToTargetAuto(IntPtr address, string className)
			: base(address, className)
		{
		}

		public SpellMoveToTargetAuto(IntPtr address)
			: this(address, "SpellMoveToTargetAuto")
		{
		}

		public new void SetSource(GameObject go)
		{
			method_8("SetSource", go);
		}

		public new void RemoveSource()
		{
			method_8("RemoveSource");
		}

		public new void AddTarget(GameObject go)
		{
			method_8("AddTarget", go);
		}

		public new bool RemoveTarget(GameObject go)
		{
			return method_11<bool>("RemoveTarget", new object[1] { go });
		}

		public new void RemoveAllTargets()
		{
			method_8("RemoveAllTargets");
		}

		public new bool AddPowerTargets()
		{
			return method_11<bool>("AddPowerTargets", Array.Empty<object>());
		}

		public new void OnBirth(SpellStateType prevStateType)
		{
			method_8("OnBirth", prevStateType);
		}

		public new void OnAction(SpellStateType prevStateType)
		{
			method_8("OnAction", prevStateType);
		}

		public void OnMoveToTargetComplete()
		{
			method_8("OnMoveToTargetComplete");
		}

		public void StopWaitingToAct()
		{
			method_8("StopWaitingToAct");
		}

		public void ResetPath()
		{
			method_8("ResetPath");
		}

		public void DoActionFallback(SpellStateType prevStateType)
		{
			method_8("DoActionFallback", prevStateType);
		}

		public void SetStartPosition()
		{
			method_8("SetStartPosition");
		}

		public bool DeterminePath(Player sourcePlayer, Card sourceCard, Card targetCard)
		{
			return method_11<bool>("DeterminePath", new object[3] { sourcePlayer, sourceCard, targetCard });
		}

		public void FixupPathNodes(Player sourcePlayer, Card sourceCard, Card targetCard)
		{
			method_8("FixupPathNodes", sourcePlayer, sourceCard, targetCard);
		}

		public void MoveCenterPoint()
		{
			method_8("MoveCenterPoint");
		}
	}
}
